Software development life-cycle (SDLC) is a structure imposed on the development of a computer software product. Documenting a computer software product for the purpose of future maintenance and enhancement is done throughout the SDLC. The process of documenting software development cycle is generally known as software documentation. Software documentation either describes how the computer software product operates or how to use it. Common forms of software documentation include electronic reference texts, on-line help files, man pages, reference manuals, comments within source code, etc. Software documentation may also be created in a variety of forms, such as, computer files, which may be accessible through web browser editors, etc., or the software documentation may be in hard copy form, such as a book or technical manual. Software documentation can also include errors or omissions that can lead to errors displayed to end-users, and consequent system failures of the computer software product, or even failure in the market place if the software documentation does not accurately accompany the software product. Therefore, managers and software engineers typically focus attention to software documentation and its associated costs if the software documentation does not accurately provide concrete descriptions of the software product.
Moreover, most software development cycles generate large amounts of associated software documentation that accompanies the computer software product. However, quite often computer software deployment can be complex with many installation and implementation options to choose from, which can affect quality production of the software documentation. Poor quality software documentation can further result in deployment or functionality issues, customer dissatisfaction with software products, risk of losing a customer to a competitor, and increase in the demand for technical support resources. In order to publish good quality software documentation, the software documentation must reflect the final product that is shipped. Generally, to achieve this, the project of the software development cycle needs to devote time and resources at the end of the cycle to thoroughly review the documentation and compare the software documentation with the final software computer product that is finalized and shipped.